From 3f32a4da462e4d2cca6551ff2400024b0b55b13f Mon Sep 17 00:00:00 2001 From: 4 Date: Tue, 12 Oct 2004 15:12:44 +0000 Subject: [PATCH] don't queue the widget for resize or emit change notification if the usize Tue Oct 12 17:11:02 2004 * gtk/gtkwidget.c (gtk_widget_set_usize_internal): don't queue the widget for resize or emit change notification if the usize didn't change. this works around a buggy signal connection in #155139. --- ChangeLog | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtkwidget.c | 11 +++++++---- 5 files changed, 31 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index db255a468c..6bb4321cee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Oct 12 17:11:02 2004 + + * gtk/gtkwidget.c (gtk_widget_set_usize_internal): don't queue the + widget for resize or emit change notification if the usize didn't + change. this works around a buggy signal connection in #155139. + 2004-10-11 Matthias Clasen * docs/tools/widgets.c: Create scrolledwindow, statusbar, diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index db255a468c..6bb4321cee 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Tue Oct 12 17:11:02 2004 + + * gtk/gtkwidget.c (gtk_widget_set_usize_internal): don't queue the + widget for resize or emit change notification if the usize didn't + change. this works around a buggy signal connection in #155139. + 2004-10-11 Matthias Clasen * docs/tools/widgets.c: Create scrolledwindow, statusbar, diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index db255a468c..6bb4321cee 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Tue Oct 12 17:11:02 2004 + + * gtk/gtkwidget.c (gtk_widget_set_usize_internal): don't queue the + widget for resize or emit change notification if the usize didn't + change. this works around a buggy signal connection in #155139. + 2004-10-11 Matthias Clasen * docs/tools/widgets.c: Create scrolledwindow, statusbar, diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index db255a468c..6bb4321cee 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Tue Oct 12 17:11:02 2004 + + * gtk/gtkwidget.c (gtk_widget_set_usize_internal): don't queue the + widget for resize or emit change notification if the usize didn't + change. this works around a buggy signal connection in #155139. + 2004-10-11 Matthias Clasen * docs/tools/widgets.c: Create scrolledwindow, statusbar, diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index f9534899de..eefa3ee9c2 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -5509,25 +5509,28 @@ gtk_widget_set_usize_internal (GtkWidget *widget, gint height) { GtkWidgetAuxInfo *aux_info; + gboolean changed = FALSE; g_return_if_fail (GTK_IS_WIDGET (widget)); g_object_freeze_notify (G_OBJECT (widget)); - aux_info =_gtk_widget_get_aux_info (widget, TRUE); + aux_info = _gtk_widget_get_aux_info (widget, TRUE); - if (width > -2) + if (width > -2 && aux_info->width != width) { g_object_notify (G_OBJECT (widget), "width_request"); aux_info->width = width; + changed = TRUE; } - if (height > -2) + if (height > -2 && aux_info->height != height) { g_object_notify (G_OBJECT (widget), "height_request"); aux_info->height = height; + changed = TRUE; } - if (GTK_WIDGET_VISIBLE (widget)) + if (GTK_WIDGET_VISIBLE (widget) && changed) gtk_widget_queue_resize (widget); g_object_thaw_notify (G_OBJECT (widget)); -- 2.30.2